#En este apartado se nos pide generar un gráfico interactivo a raíz de un archivo de datos sobre el covid.

#Para empezar, establecemos las librerías que vamos a utilizar:
library(readr)
library(ggplot2)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#Importamos dicho archivo con readr.
df <- read_csv("data/owid-covid-data.csv")
## Rows: 261499 Columns: 67
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr   (4): iso_code, continent, location, tests_units
## dbl  (62): total_cases, new_cases, new_cases_smoothed, total_deaths, new_dea...
## date  (1): date
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df$date <- as.Date(df$date, format = "%Y-%m-%d") #Establecemos la fecha en formato año-mes-día.

#Se nos pide que este gráfico está compuesto por datos hasta la fecha actual y por un grupo de países, establecemos los países que buscamos en la variable 'paises'.
paises <- c("Canada","France","Germany","Italy","Japan","Spain","United Kingdom","United States")

#Filtramos nuestro conjunto de datos por los países establecidos mediante la función filter()
df_filtrado <- df %>%
  filter(location %in% paises)

#Establecemos que color queremos que represente cada país, buscamos sobre todo que el negro represente el conjunto de datos de España.
colores <- c("Canada" = "red","France" = "orange","Germany" = "green","Italy" = "cyan","Japan" = "blue","Spain" =  "black","United Kingdom" = "deeppink","United States" = "purple")

#Mediante la función ggplot generamos un gráfico y especificamos geom_line para que corresponda con un gráfico de líneas que represente nuestro conjunto de datos.
#Con la función labs estableceremos el título que queremos.
nuevos_datos <-ggplot(df_filtrado, aes(x = date, y = new_deaths_smoothed_per_million, color = location, group = location)) + geom_line() + scale_y_continuous(breaks = seq(0, 18, by = 2)) + scale_x_date(date_labels = "%b %d %Y", breaks = seq(min(df_filtrado$date), max(df_filtrado$date), length.out = 5), limits = c(min(df_filtrado$date), as.Date("2022-02-28")))+scale_color_manual(values=colores)+geom_line(data = filter(df_filtrado, location == "Spain"), size = 0.9, col  =  "black")+labs(title = "Daily new confirmed COVID-19 deaths per million people", x = "date", y = "new_deaths_smoothed_per_million", color = "paises")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
nuevos_datos
## Warning: Removed 3206 rows containing missing values (`geom_line()`).
## Warning: Removed 404 rows containing missing values (`geom_line()`).

ggplotly(nuevos_datos)